#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTableWidget>
#include <QListWidget>
#include <QVBoxLayout>
#include "basicwindow.h"
#include "newproject.h"
#include "projectrecover.h"
#include "projectpack.h"
#include "smalliconitem.h"
#include "superbigiconitem.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public BasicWindow
{
    Q_OBJECT

public:
    MainWindow(BasicWindow *parent = nullptr);
    ~MainWindow();

private slots:
    void changeActionStatus();
    void on_actionNew_triggered();
    void on_actionRecover_triggered();
    void on_actionPack_triggered();
    void on_actionList_triggered(bool checked);
    void on_actionExit_triggered();
    void on_actionDetail_triggered(bool checked);
    void on_actionSmallIcon_triggered(bool checked);
    void on_actionBigIcon_triggered(bool checked);
    void on_actionSuperBigIcon_triggered(bool checked);

public:
    Ui::MainWindow *ui;
    QVBoxLayout *mainLayout;
    QTableWidget *tableWidget;
    NewProject * newProject;
    ProjectRecover* projectRecover;
    ProjectPack* projectPack;
    QListWidget* listWidget;
    SmallIconItem* smallIconItem;
    SuperBigIconItem* superBigIconItem;


    void init();
    void initLayout();
    void initTableWidget();

private slots:
    void setChecked(QTableWidgetItem *current, QTableWidgetItem *previous);
    void on_actionNewProject_triggered();
    void on_actionQuit_triggered();
};
#endif // MAINWINDOW_H
